package com.mdinfo.system.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.mdinfo.system.bean.SysMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by Administrator on 2017/11/22.
 */
public interface SysMenuMapper extends BaseMapper<SysMenu>{

    /**
     * 查询所有
     */
    List<SysMenu> listAll();

    /**
     * 分页条件查询
     */
    List<SysMenu> listQuery(@Param("start")Integer start,
                            @Param("num")Integer num,
                            @Param("key")String key);

    /**
     * 条件查询总数
     */
    int countListQuery(@Param("key")String key);

    /**
     * 根据名称查询
     */
    SysMenu getByName(@Param("name")String name);

    /**
     * 根据名称查询,且id不等于
     */
    SysMenu getByNameAndNotId(@Param("name")String name,
                              @Param("menuId")Integer menuId);

    /**
     * 根据标识查询
     */
    SysMenu getByTag(@Param("tag")String tag);

    /**
     * 根据标识查询,且id不等于
     */
    SysMenu getByTagAndNotId(@Param("tag")String tag,
                             @Param("menuId")Integer menuId);


    /**
     * 根据角色id查询
     */
    List<SysMenu> listByRoleId(@Param("roleId")Integer roleId);

    /**
     * 根据父id查询
     */
    List<SysMenu> listByPid(@Param("pid")Integer pid);

    /**
     * 根据用户id查询
     */
    List<SysMenu> listByMemberId(@Param("memberId")Integer memberId);

    /**
     * 查询所有可用的权限
     */
    List<SysMenu> listUsableByMember(@Param("menuIdList") List<Integer> menuIdList);

}
